using System;
using System.Collections.Generic;
using Fuse8.DomainFramework.Domain;

namespace Fuse8.DomainFramework.Practices.DataAccess.Commands
{
    public class GenericList<TEntity, TKey> : IEntityObject<TKey> where TKey : IComparable<TKey>, IEquatable<TKey>
    {
        public virtual IEnumerable<TEntity> List { get; set; }

        public string TypeParameter
        {
            get { return GetType().FullName; }
        }

        public string EntityIdentfier
        {
            get { return Id.ToString(); }
        }

        public bool IsNew
        {
            get { return false; }
        }

        public bool IsCreated
        {
            get { return true; }
        }

        public bool Equals(IEntityObject<TKey> x, IEntityObject<TKey> y)
        {
            return false;
        }

        public int GetHashCode(IEntityObject<TKey> obj)
        {
            return 1;
        }

        public void IncreaseId()
        {
            
        }

        public virtual TKey Id { get; set; }
    }
}